using UnityEngine;

public class MagicMissileController : MonoBehaviour
{
    public float speed = 10f; // 飞弹速度
    public float damage = 20f; // 飞弹伤害
    private Transform target; // 追踪的目标

    // 这个方法用来设置飞弹的目标
    public void SetTarget(Transform newTarget)
    {
        target = newTarget;
    }

    void Update()
    {
        if (target != null)
        {
            // 如果有目标，就朝它飞去
            Vector2 direction = (target.position - transform.position).normalized;
            transform.Translate(direction * speed * Time.deltaTime);
        }
        else
        {
            // 如果中途目标消失了（比如怪物被其他东西打死了）
            // 飞弹就自我销毁，避免留在场上
            Destroy(gameObject);
        }
    }

    // 当飞弹的触发器进入另一个碰撞体时调用
    private void OnTriggerEnter2D(Collider2D other)
    {
        // 检查碰到的是否是敌人（我们可以给敌人也加上Tag）
        if (other.CompareTag("Enemy"))
        {
            // 尝试从碰到的对象上获取 EnemyHealth 组件
            EnemyHealth enemyHealth = other.GetComponent<EnemyHealth>();
            if (enemyHealth != null)
            {
                // 对敌人造成伤害
                enemyHealth.TakeDamage(damage);
            }

            // 命中后销毁飞弹
            Destroy(gameObject);
        }
    }
}